/** 
 * Provides a simple API for loading and saving data from XML files.
 * <p>
 * <h3>Using Parameters</h3>
 * The Parameters class is the main way of using this package.
 * <p>
 * To load data from an XML file call 
 * {@linkplain parameters.Parameters#loadParameterSetWithoutStoring(String) Parameters.loadParameterSetWithoutStoring(String filename)} 
 * and pass the XML filename as the parameter. This function will return a 
 * {@linkplain parameters.Parameters Parameters} instance that will contain the data in the XML file.
 * <p>
 * <h3>XML File Syntax</h3>
 * Every XML file begins with the tag {@code <parametersdefinition>}. It has
 * no attributes. Below {@code <parametersdefinition>} is the root group defined
 * as such {@code <parametergroup key="root">}. Below the root group are the
 * actual nodes which define the data.
 * <p>
 * A {@code <parametergroup>} has zero or more children, either another 
 * {@code <parametergroup>} or simply a leaf {@code <parameter>}. 
 * {@code <parametergroup>} can have unique attributes as well. When the file 
 * is parsed every attribute on the {@code <parametergroup>} besides 'key' is
 * interpreted as a {@code <parameter>} whose value is the attributes value.
 * <p>
 * Both {@code <parametergroup>} and {@code <parameter>} must contain an 
 * attribute 'key' which is used to reference the node and whose value is 
 * unique at that node's level. A {@code <parameter>} is a leaf node and must
 * also contain an attribute 'value' whose value is the node's value. When an
 * XML file is created from a Parameters instance every {@code <parameter>} will
 * also have an attribute 'type', but this attribute is not required for a 
 * file to be parsed.
 * <p>
 */
package parameters;
